﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Net;

namespace Icebird//数据库组写，网络组调用;
{
    public enum LoginState
    {
        LOGIN = 0,
        LOGOUT = 1,
        HIDDEN =2,
        FAILED = -1
    };

    public class Group { }
    public class Topic { }
    public class Message { }

    interface IDBToNetwork
    {
        public int DBSignIn(string UserName,string PassWord);//注册一个新账号
//recommend:return int to indicate the signin status,
        public LoginState LogIn(string UserName,string PassWord,string ClientIPAddress, DateTime time);//登录并返回账号UserId
//recommend:add LoginTime as a parameter,
        public ArrayList<Group> GetGroups(int StartPosition,int EndPosition);//进入Groups界面，得到从StartPosition到EndPosition部分的Groups列表
        //注意这里的ArrayList中每个元素为一个类，其中包含GroupId和GroupName，由DB组完成
        public ArrayList<Topic> GetTopics(int StartPosition,int EndPosition,int GroupId);//进入Topics界面，得到从SP到EP部分的Topics列表
        //注意这里的ArrayList中每个元素为一个类，其中包含TopicId，创建这个Topic的UserName，创建时间，Topic标题，Topic中Reply总数，由DB组完成
        public ArrayList<Message> GetReplies(int StartPosition,int EndPosition,int TopicId);//进入Replies界面，得到从SP到EP部分的Replies列表
        //注意这里的ArrayList中每个元素为一个类，其中包含ReplyId，Reply内容，发Reply的UserName，创建时间,由DB组完成
        public string CommitReply(int UserId,string Content,int TopicId);//添加一个新的Reply，返回一个字符串“Pass”表示成功“Out”表示失败
//recommend:add LoginTime as a parameter,
//recommend:return int to indicate the signin status,
        public void LogOut(int UserId,int IPAddress);//用户登出记录
//recommend:remove ipaddr from parameter,
    }

}
